package com.example.pei.ithinklearnt.utils;


import android.content.Context;
import android.graphics.Bitmap;
import android.widget.ImageView;


import com.example.pei.ithinklearnt.R;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;


public class ImageLoaderUtil {

    public static ImageLoader getImageLoader(Context context) {
        return ImageLoader.getInstance();
    }

    public static DisplayImageOptions getPhotoImageOption() {
        Integer extra = 1;
        DisplayImageOptions options = new DisplayImageOptions
                .Builder()
                .cacheInMemory(true)//设置下载的图片是否缓存在内存中
                .cacheOnDisk(true)//设置下载的图片是否缓存在SD卡中
                .showImageForEmptyUri(R.drawable.banner_error)//设置图片Uri为空或是错误的时候显示的图片
                .showImageOnFail(R.drawable.banner_error)//设置图片加载/解码过程中错误时候显示的图片
                .showImageOnLoading(R.drawable.banner_default)
                .extraForDownloader(extra)//设置额外的内容给ImageDownloader
                .bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型
                .build();
        return options;
    }
    public static DisplayImageOptions getPhotoImageOption2() {
        Integer extra = 1;
        DisplayImageOptions options = new DisplayImageOptions
                .Builder()
                .cacheInMemory(true)//设置下载的图片是否缓存在内存中
                .cacheOnDisk(true)//设置下载的图片是否缓存在SD卡中
                .showImageForEmptyUri(R.drawable.default_head)//设置图片Uri为空或是错误的时候显示的图片
                .showImageOnFail(R.drawable.default_head)//设置图片加载/解码过程中错误时候显示的图片
                .showImageOnLoading(R.drawable.default_head)
                .extraForDownloader(extra)//设置额外的内容给ImageDownloader
                .bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型
                .build();
        return options;
    }
    public static DisplayImageOptions getPhotoRoundImageOption(){
        //圆角图片
        DisplayImageOptions options2 = new DisplayImageOptions.Builder()
                .cacheInMemory(true)//设置下载的图片是否缓存在内存中
                .cacheOnDisk(true)//设置下载的图片是否缓存在SD卡中
                .showImageForEmptyUri(R.drawable.default_head)//设置图片Uri为空或是错误的时候显示的图片
                .showImageOnFail(R.drawable.default_head)//设置图片加载/解码过程中错误时候显示的图片
                .showImageOnLoading(R.drawable.default_head)
                .bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型
                //.displayer(new RoundedBitmapDisplayer(24))
                .build();
        return  options2;
    }

    public static void displayImage(Context context, ImageView imageView, String url, DisplayImageOptions options) {
        if(url==null||url.equals("")){
            imageView.setImageResource(R.drawable.default_head);
        }else{
            getImageLoader(context).displayImage(url, imageView, options);
        }

    }

    public static void displayImage(Context context, ImageView imageView, String url, DisplayImageOptions options, ImageLoadingListener listener) {
        getImageLoader(context).displayImage(url, imageView, options, listener);
    }



    /**
     * 从内存卡中异步加载本地图片
     *
     * @param uri
     * @param imageView
     */
    public void displayFromSDCard(String uri, ImageView imageView) {
        // String imageUri = "file:///mnt/sdcard/image.png"; // from SD card
        ImageLoader.getInstance().displayImage("file://" + uri, imageView);
    }
}